package com.yzh.luckydraw.domain.activity.service.stateflow;

import com.yzh.luckydraw.common.Constants;
import com.yzh.luckydraw.common.Result;

public interface IStateHandler {
    /**
     * 活动提审
     * @param activityId    活动ID
     * @param currentState  当前状态
     * @return  执行结果
     */
    public abstract Result arraignment(Long activityId, Enum<Constants.ActivityState> currentState);
    /**
     * 审核通过
     * @param activityId    活动ID
     * @param currentState  当前状态
     * @return  执行结果
     */
    public abstract Result checkPass(Long activityId, Enum<Constants.ActivityState> currentState);
    /**
     * 审核拒绝
     * @param activityId    活动ID
     * @param currentState  当前状态
     * @return  执行结果
     */
    public abstract Result checkRefuse(Long activityId, Enum<Constants.ActivityState> currentState);
    /**
     * 审核撤销
     * @param activityId    活动ID
     * @param currentState  当前状态
     * @return  执行结果
     */
    public abstract Result checkRevoke(Long activityId, Enum<Constants.ActivityState> currentState);
    /**
     * 活动关闭
     * @param activityId    活动ID
     * @param currentState  当前状态
     * @return  执行结果
     */
    public abstract Result close(Long activityId, Enum<Constants.ActivityState> currentState);
    /**
     * 活动开启
     * @param activityId    活动ID
     * @param currentState  当前状态
     * @return  执行结果
     */
    public abstract Result open(Long activityId, Enum<Constants.ActivityState> currentState);
    /**
     * 活动执行
     * @param activityId    活动ID
     * @param currentState  当前状态
     * @return  执行结果
     */
    public abstract Result doing(Long activityId, Enum<Constants.ActivityState> currentState);
}
